package com.xbai.spark.core.action

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

/**
  *  countByKey() 算子
  *  作用：针对( K,V) 类型的 RDD，返回一个 (K,Int) 的 map，表示每一个 key 对应的元素个数
  *  案例：创建一个PairRDD，统计每种key的个数
  * @author xbai
  * @Date 2020/12/31
  */
object Spark09_CountByKey {

  def main(args: Array[String]): Unit = {
    val conf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("countByKey")
    val sc = new SparkContext(conf)

    val rdd: RDD[(Int, Int)] = sc.parallelize(List((1,3),(1,2),(1,4),(2,3),(3,6),(3,8)),3)
    val result: collection.Map[Int, Long] = rdd.countByKey()
    println(result.mkString(","))
    sc.stop()
  }
}
